#!/usr/bin/env python
import argparse
import torch
import torch.nn as nn


class Options(object):
    def __init__(self):
        parser = argparse.ArgumentParser()
        # parser.add_argument('--no_cuda',
        #                     action='store_true',
        #                     default=False,
        #                     help='Disables CUDA training.')
        # parser.add_argument('--cuda_index',
        #                     type=int,
        #                     default=1,
        #                     help='Cuda index you want to choose.')
        parser.add_argument('--domain',
                            type=tuple,
                            default=(0, 1),
                            help='domain range')
        parser.add_argument('--problem_name',
                            type=str,
                            default="poisson",
                            help='poisson, helmholtz, allen_cahn, boundary_layer')
        parser.add_argument('--case',
                            type=int,
                            default=1,
                            help='different problem case')
        parser.add_argument('--k',
                            type=int,
                            default=100,
                            help='some problem have different parameters')
        parser.add_argument('--n_gaussian',
                            type=int,
                            default=50,
                            help='the number of gaussian')
        parser.add_argument('--n_level',
                            type=int,
                            default=5,
                            help='the number of level')
        parser.add_argument('--n_pde',
                            type=int,
                            nargs='+',
                            default=2000,
                            help='the number of sample inside')
        parser.add_argument('--n_bc',
                            type=int,
                            nargs='+',
                            default=200,
                            help='the number of sample boundary')
        parser.add_argument('--sigma',
                            type=float,
                            default=.1,
                            help='sigma')
        parser.add_argument('--mode',
                            type=int,
                            default=1,
                            help='the method for densification')

        self.parser = parser

    def parse(self):
        args = self.parser.parse_args()
        return args


if __name__ == '__main__':
    args = Options().parse()
    print(args)
